Apache Wicket, commonly referred to as Wicket, is a component-based web application framework for the Java programming language conceptually similar to JavaServer Faces and Apache Tapestry. It was originally written by Jonathan Locke in April 2004. Version 1.0 was released in June 2005. It graduated into an Apache top-level project in June 2007.
In contrast, Wicket is closely patterned after stateful GUI frameworks such as Swing. Wicket applications are trees of components, which use listener delegates to react to HTTP requests against links and forms in the same way that Swing components react to mouse and keystroke events. Wicket is categorized as a component-based framework.
Each component is backed by its own model, which represents the state of the component. The framework does not have knowledge of how components interact with their models, which are treated as black box objects automatically serialization and persisted between requests. More complex models, however, may be made detachable and provide software hook to arrange their own storage and restoration at the beginning and end of each request cycle. Wicket does not mandate any particular object-persistence or ORM layer, so applications often use some combination of Hibernate objects, or as models.
In Wicket, all server side state is automatically managed. You should never directly use an HttpSession object or similar wrapper to store state. Instead, state is associated with components. Each server-side page component holds a nested hierarchy of stateful components, where each component's model is, in the end, a POJO (Plain Old Java Object)
Wicket aims for simplicity. There are no configuration files to learn in Wicket. Wicket is a simple class library with a consistent approach to component structure.
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" xml:lang="en" lang="en">
Message goes here
import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label;
public class HelloWorld extends WebPage {
/** * Constructor */ public HelloWorld() { add(new Label("message", "Hello World!")); }}
import org.apache.wicket.protocol.http.WebApplication;
public class HelloWorldApplication extends WebApplication {
/** * Constructor. */ public HelloWorldApplication() { }
/** * @see org.apache.wicket.Application#getHomePage() */ public Class getHomePage() { return HelloWorld.class; }}
+ Apache Wicket Versions !Series !Description !Latest release !Latest release date | |||
Migrated from Javax APIs to Jakarta APIs. Dependencies upgraded to support Spring Framework 6 and therefore moving to Java 17 as the required minimum platform, and compatible with Java 21. CGLib is replaced with ByteBuddy. Announcing Apache Wicket 10: build modern web applications with Java!. wicket.apache.org. Retrieved on 2024-03-11. | 10.0.0 | 2024-03-11 | |
Moving to Java 11 as the required minimum platform, migrated from JUnit 4 to 5, support for Java 12 and 13, rework page and data storage and other improvements. Announcing Apache Wicket 9: get into the modern Java world!. wicket.apache.org. Retrieved on 2020-10-05. | 9.16.0 | 2023-11-23 | |
Moving to Java 8 as the required minimum platform. Support for Lambdas, required Servlet API version moving to 3.1, support for the new types for handling dates and other improvements. Announcing Apache Wicket 8: Write Less, Achieve More. wicket.apache.org. Retrieved on 2018-05-22. Recommended to upgrade to 9.x version. | 8.14.0 | 2022-01-29 | |
Moving to Java 7 as the required minimum platform, cross site request forgery prevention, support for inline images. The release consist of almost 300 features, improvements and fixes. Apache Wicket v7.0 released. wicket.apache.org. Retrieved on 2018-04-16. Only security fixes, recommended to upgrade to 9.x version. | 7.18.0 | 2021-04-02 | |
Moving to Java 6 as the required minimum platform. Out-of-the box jQuery integration, complete control over AJAX requests, improved event registration in browsers, support for large datasets, dependency management for client side JavaScript libraries, experimental support for websockets. Apache Wicket v6.0.0 released. wicket.apache.org. Retrieved on 2020-10-05. | 6.30.0 | 2018-12-05 | |
Improvements of the Wicket features. Apache Wicket - Apache Wicket releases Wicket 1.5. Wicket.apache.org. Retrieved on 2013-08-13. | 1.5.16 | 2016-08-05 | |
Moving to Java 5 as the required minimum platform. Apache Wicket - Apache Wicket 1.4 takes typesafety to the next level . Wicket.apache.org. Retrieved on 2013-08-13. | 1.4.23 | 2014-02-06 | |
1.3.7 | 2009-07-30 | ||
1.2.7 | 2008-03-23 | ||
1.1.1 | TBD | ||
1.0.3 | TBD | ||
|
|